异构查询
    Delphi支持异构查询。所谓异构查询,就是同时查询几个不同的数据库。这些数据库可以位于不同的服务器上,甚至服务器的类型也可以不同。比如,可以同时查询Oracle数据库、Sybase数据库和本地的dBASE表。当程序执行异构查询的时候,BDE通过Local SQL来分析和处理这个查询。正因为如此,所以与服务器相关的特定的SQL语法不支持。

    要执行异构查询,可以:
    (1)为查询要访问的数据库建立不同的BDE别名。把一个TQuery构件放到数据模块上,DatabaseName属性为空。查询要使用的不同数据库将在SQL属性中指定。
    (2)在SQL属性中指定要执行的SQL语句。在SQL语句中,每个数据表的名称前要加数据库的别名。别名和数据表之间要加冒号,并且用双引号括起来。
    (3)在Params属性中指定查询的参数
    (4)调用Prepare通知BDE或服务器做好准备
    (5)调用Open或ExecSQL执行查询

    比如,在Oracle数据库中有一个CUSTOMER数据表,Oracle数据库的别名是Oracle1;在Sybase数据库中有一个Orders数据表,Sybase数据库的别名是Sybase1;那么,一个简单的异构查询如下所示:
    SELECT Customer.CustNo, Orders.OrderNo
        FROM "Oracle1:CUSTOMER"
        JOIN "Sybase1:ORDERS"
        ON (Customer.CustNo = Orders.CustNo)
        WHERE (Customer.CustNo = 1503)
    在异构查询中除了使用“别名”外,也可以指定一个数据库。可以使用一个TDatabase构件,设置TDatabase构件的DatabaseName属性为应用程序专用的别名,在SQL语句中可以用专用的别名代替BDE别名。

RainBow策划制作 版权所有